The emergence of the cloud for computing applications has increased the demand for off-site installations, known as data centers, that store data and run applications accessed by remotely connected computer device users. A typical data center has physical chassis structures with attendant power and communication connections. Each rack may hold multiple network devices such as servers for computing, storage, or controls, as well as appropriate network and management switches. Each server may require access to a storage device for storing data. Although storage devices may be set up in a coordinated array, they are more often simply a set of storage disks that require separate access for each of the nodes.
A mechanism for connecting devices to each other for networking purposes is a Serial-attached SCSI (SAS) architecture. The SAS architecture defines a serial device interconnect and transport protocol that provides rules for information exchange between devices. The SAS physical cables are a set of four wires used as two differential signal pairs that allows data to be transmitted in both directions simultaneously. A port for a SAS cable is identified by a unique SAS worldwide name (also called SAS address).
A SAS controller or manager contains one or more SAS ports. A path is a logical point-to-point link between a SAS initiator port in the controller and a SAS target port on a target device (e.g., a storage device such as a hard disk drive). A connection is a temporary association between the controller and the target device through the path.
A SAS expander is a device that enables connections between the controller port and multiple target devices by routing connections via expander ports between the target devices and the controller. Only a single connection through a SAS expander can exist at any given time. Using expanders creates more nodes in the path from the controller to the target device and thus more controllers can be connected to target devices connected to the SAS expander. Therefore, the SAS expander affords network designers greater flexibility.
Traditionally, host devices such as servers are set up according to a predetermined SAS zone in relation to connections to the input/output ports of storage devices in a SAS architecture. The cable connections must be made in accordance with the predetermined zone. Thus, the operator of the system needs to first configure SAS zoning, and then change the SAS cables to match the SAS zoning definition. Otherwise the storage devices in a “just a bunch of disks” (JBOD) storage unit cannot support multiple servers without configuration for SAS zoning. Such a requirement is susceptible to human error when SAS cable connections are changed but a technician forgets to change the SAS zoning when additional server devices are added. For example, a first host server may be connected to a series of storage target devices through a SAS expander. If a second host server is connected to the SAS expander, it will be unable to access the storage target devices unless the SAS zones are reconfigured to recognize the newly connected second server.
Thus, there is a need for an automatic SAS zoning configuration protocol to eliminate human error. There is a further need for a mechanism for automatically changing SAS zoning depending on SAS cable connection to host devices.